Various services, such as Web services, are being provided over networks and may be called from within a program (see Japanese Laid-Open Patent Application No. 2009-017592, for example). By utilizing such existing services, a program developer may be able to develop programs with an improved efficiency. Because the existing services can be expected to provide generally stable quality, program developers can develop stable programs by utilizing such services and offer them to users.
Also, in some image forming apparatuses generally referred to as multifunction peripherals (MFPs), a new application can be developed or installed by utilizing a published application program interface (API), for example, after shipping (see Japanese Laid-Open Patent Application No. 2005-269619, for example). In such an image forming apparatus, not only the applications developed by the vendor of the image forming apparatus, but also applications developed by a third-party vendor can be installed. Thus, the functional extensibility of the image forming apparatus is significantly increased, enabling the seller of the image forming apparatus to create a new business model by utilizing the extended functionality.
Such third-party-vendor developed applications may also facilitate coordination between the image forming apparatus and other computers. For example, a service provider may decide to coordinate its own computer system with an image forming apparatus in a business partnership with a seller of the image forming apparatus, thereby increasing the potential for creating a new business model.
However, with regard to the utilization of existing services via a network, if the relationship between the program and the service that the program calls is static, the program may not be able to utilize a new, higher-functionality service of the same kind as the original service because the program has to be rewritten in order to utilize the new service. On the other hand, if the relationship between the program and the service is dynamic, the service that the program utilizes may be replaced with another service relatively easily. However, it has been difficult to define a standard for selecting an optimum service. Furthermore, the replacement of services involves complicated information defining the program and the services, which information are difficult for a user to manually modify.
With regard to the creation of new business models by utilizing the API, one important question is how to achieve revenue. In a business model utilizing a computer system, an appropriate mechanism for ensuring revenue should be implemented within the computer system. It is also desirable that the computer system implement a mechanism for enabling distribution of the revenue among business partners in an easy and clear manner.